﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Control.Catalogo;
using Entidades.Catalogo;
using Entidades.General;
using Navegador.Vistas;
using Entidades.Solicitud;
using Entidades.Consultas.Personalizadas;
using System.Web.UI.HtmlControls;

namespace SICOIA.UserControls.Bandejas
{
    public partial class uCBandejaSolicitantes : ViewController
    {
        EntUsuario usuario = new EntUsuario();
        protected void Page_Load(object sender, EventArgs e)
        {
            if ((EntUsuario)Session["UserPemex"] == null)
                Response.Write("<script>parent.window.open('../Marcos/EndPEMEX.aspx','_top')</script>");
            else
                usuario = (EntUsuario)Session["UserPemex"];

            if (!Page.IsPostBack)
            {
                LlenarPorSolicitar();
                LlenarSolicitadas();
                LlenarPendientes();
                LlenarAtendidas();
            }
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            LlenarPorSolicitar();
            LlenarSolicitadas();
            LlenarPendientes();
            LlenarAtendidas();
        }

        protected void grdSoliciudes_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Editar")// pendiente de definir
                Response.Redirect("ProxyUserControls.aspx?Url=Solicitud&accion=editar&IdSolicitud=" + e.CommandArgument.ToString(), true);
            else if (e.CommandName == "Eliminar")
            {
                int claveSolicitud = int.Parse(e.CommandArgument.ToString());
                CtrlSolicitud control = new CtrlSolicitud();
                control.Eliminar(claveSolicitud);
                LlenarPorSolicitar();
            }
        }
        protected void grdSoliciudes_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                EntObraConDetalle ent = (EntObraConDetalle)e.Row.DataItem;
                e.Row.Attributes.Add("onMouseOver", "this.style.cursor = 'hand';this.style.backgroundColor = 'yellow';");
                e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor = 'white';");

                ImageButton btnEliminar = e.Row.Cells[1].FindControl("btnEliminar") as ImageButton;
                HyperLink lnkEditarObra = e.Row.Cells[1].FindControl("lnkEditarObra") as HyperLink;
                HyperLink lnkSolicitud = e.Row.Cells[1].FindControl("lnkSolicitud") as HyperLink;
                
                if (btnEliminar != null)
                    btnEliminar.Attributes.Add("onclick", "javascript:return " + "confirm('Esta seguro de eliminar esta Obra?. " + "')");
                if (lnkEditarObra != null)
                    lnkEditarObra.NavigateUrl += ent.CveTrabajoRealizar;
                if (lnkSolicitud != null)
                    lnkSolicitud.NavigateUrl += ent.CveSolicitud;
                
                // Hover over
                HtmlGenericControl panel = (HtmlGenericControl)e.Row.Cells[1].FindControl("gridPopup");
                if (panel != null)
                {
                    string showPopup = "ShowPopup('" + panel.ClientID + "','" + e.Row.ClientID + "')";
                    string hidePopup = "HidePopup('" + panel.ClientID + "','" + e.Row.ClientID + "')";
                    e.Row.Attributes.Add("onmouseover", "javascript:" + showPopup);
                    e.Row.Attributes.Add("onmouseout", "javascript:" + hidePopup);
                }
                //
            }
        }

        #region Metodos de Consulta
        public void LlenarPorSolicitar()
        {

            CtrlSolicitudTrabajosRealizar control = new CtrlSolicitudTrabajosRealizar();
            control.usuario = this.usuario;
            List<EntObraConDetalle> lstS = control.CriteriosObtenerTodos("", "", "", "", "-1", txtValor.Text);
            totalPorSolicitar.Text = lstS.Count().ToString();
            grdPorSolicitar.DataSource = lstS;
            grdPorSolicitar.DataBind(); 
        }
        public void LlenarSolicitadas()
        {
            CtrlSolicitudTrabajosRealizar control = new CtrlSolicitudTrabajosRealizar();
            control.usuario = this.usuario;
            List<EntObraConDetalle> lstS = control.CriteriosObtenerTodos("", "", "", "", "0", txtValor.Text);
            totalSolicitadas.Text = lstS.Count().ToString();
            grdSolicitadas.DataSource = lstS;
            grdSolicitadas.DataBind();            
        }
        public void LlenarPendientes()
        {
            CtrlSolicitudTrabajosRealizar control = new CtrlSolicitudTrabajosRealizar();
            control.usuario = this.usuario;
            List<EntObraConDetalle> lstS = control.CriteriosObtenerTodos("", "", "", "", "2", txtValor.Text);
            totalPendientes.Text = lstS.Count().ToString();
            grdPendiente.DataSource = lstS;
            grdPendiente.DataBind();            
        }
        public void LlenarAtendidas()
        {
            CtrlSolicitudTrabajosRealizar control = new CtrlSolicitudTrabajosRealizar();
            control.usuario = this.usuario;
            List<EntObraConDetalle> lstS = control.CriteriosObtenerTodos("", "", "", "", "1", txtValor.Text);
            totalAtendidas.Text = lstS.Count().ToString();
            grdAtendidas.DataSource = lstS;
            grdAtendidas.DataBind();            
        }
        #endregion
    }
}